home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-29 | 1.2 KB | 40 lines | [TEXT/CWIE] |
- // Boyer-Moore Search Object
- #pragma once
-
-
- class BoyerMoore
- {
- protected:
- unsigned char fSkipTable[256];
-
- unsigned char fSearchString[256];
- short fStringLen;
-
- void* fSearchDataVoid; // Holder for original search information
- long fSearchDataLen; // How much data can we look though?
- long fStartingOffset;
- unsigned char *fSearchData; // Assigned internally
-
- Boolean fCaseInsensitive;
-
- public:
- BoyerMoore(void);
- BoyerMoore(char* searchStr, short searchLen, void* searchData = nil, long searchDataLen = 0);
- virtual ~BoyerMoore(void);
-
- virtual void SetSearchString(char *searchStr, short searchLen);
- virtual void SetSearchString(Str255 searchStr);
-
- virtual void SetSearchData(void *searchData, long dataLen);
-
- virtual long Search(void); // Assumes all parameters have been setup
- virtual long Search(long startingOffset, char *searchStr = nil, short searchLen = 0); // Where we want to start searching
- virtual long Search(long startingOffset, Str255 searchStr = nil);
-
- protected:
- virtual void PrepareSearchData(void); // Setup the interall data for searching
- virtual void CleanupSearchData(void); // Let it go if it was locked or marked
-
- virtual void BuildSkipTable(void);
- };
-